<html>
<head><meta charset="utf-8"><title>const_eval is slow with locals without liveness markers · t-compiler/const-eval · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/index.html">t-compiler/const-eval</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/const_eval.20is.20slow.20with.20locals.20without.20liveness.20markers.html">const_eval is slow with locals without liveness markers</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="154248297"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/const_eval%20is%20slow%20with%20locals%20without%20liveness%20markers/near/154248297" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Björn Steinbrink <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/const_eval.20is.20slow.20with.20locals.20without.20liveness.20markers.html#154248297">(Jan 03 2019 at 16:05)</a>:</h4>
<p>While working on <a href="https://github.com/rust-lang/rust/issues/36673" target="_blank" title="https://github.com/rust-lang/rust/issues/36673">https://github.com/rust-lang/rust/issues/36673</a> I noticed that const_eval gets a lot slower when the storage liveness markers get removed. I suspect it's because without the liveness markers the push_stack_frame function has to eagerly "initialize" the local right away, instead of doing it lazily when (and if) it hits the StorageLive marker.</p>



<a name="154248530"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/const_eval%20is%20slow%20with%20locals%20without%20liveness%20markers/near/154248530" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/const_eval.20is.20slow.20with.20locals.20without.20liveness.20markers.html#154248530">(Jan 03 2019 at 16:08)</a>:</h4>
<p>that might be, though this should only make a difference when there are lots of unused local variables</p>



<a name="154248663"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/const_eval%20is%20slow%20with%20locals%20without%20liveness%20markers/near/154248663" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Björn Steinbrink <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/const_eval.20is.20slow.20with.20locals.20without.20liveness.20markers.html#154248663">(Jan 03 2019 at 16:10)</a>:</h4>
<p>with the example code from that issue, I'm seeing millions of extra queries to erase_regions_ty and layout_of. I'm pretty clueless about how const_eval works, so I'm not sure whether that's to be expected</p>



<a name="154248695"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/const_eval%20is%20slow%20with%20locals%20without%20liveness%20markers/near/154248695" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Björn Steinbrink <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/const_eval.20is.20slow.20with.20locals.20without.20liveness.20markers.html#154248695">(Jan 03 2019 at 16:11)</a>:</h4>
<p>comparing the -Zself-profile output for a run that doesn't remove the markers and one that just removes the markers, but doesn't actually do any copy propagation</p>



<a name="154248716"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/const_eval%20is%20slow%20with%20locals%20without%20liveness%20markers/near/154248716" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/const_eval.20is.20slow.20with.20locals.20without.20liveness.20markers.html#154248716">(Jan 03 2019 at 16:11)</a>:</h4>
<p>allocating memory for a local calls <code>layout_of</code> to determine the size of the type of the local</p>



<a name="154248782"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/const_eval%20is%20slow%20with%20locals%20without%20liveness%20markers/near/154248782" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/const_eval.20is.20slow.20with.20locals.20without.20liveness.20markers.html#154248782">(Jan 03 2019 at 16:12)</a>:</h4>
<p>it probably also calls <code>erase_regions_ty</code> because const eval does that all the time</p>



<a name="154248811"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/const_eval%20is%20slow%20with%20locals%20without%20liveness%20markers/near/154248811" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Björn Steinbrink <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/const_eval.20is.20slow.20with.20locals.20without.20liveness.20markers.html#154248811">(Jan 03 2019 at 16:12)</a>:</h4>
<p>erase_regions_ty  seems to come via  monomorphize()</p>



<a name="154248826"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/const_eval%20is%20slow%20with%20locals%20without%20liveness%20markers/near/154248826" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Björn Steinbrink <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/const_eval.20is.20slow.20with.20locals.20without.20liveness.20markers.html#154248826">(Jan 03 2019 at 16:13)</a>:</h4>
<p>also called in layout_of_local</p>



<a name="154248932"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/const_eval%20is%20slow%20with%20locals%20without%20liveness%20markers/near/154248932" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/const_eval.20is.20slow.20with.20locals.20without.20liveness.20markers.html#154248932">(Jan 03 2019 at 16:14)</a>:</h4>
<p>yeah that makes sense</p>



<a name="154248939"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/const_eval%20is%20slow%20with%20locals%20without%20liveness%20markers/near/154248939" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/const_eval.20is.20slow.20with.20locals.20without.20liveness.20markers.html#154248939">(Jan 03 2019 at 16:14)</a>:</h4>
<p>not sure why there are so many unused locals though</p>



<a name="154248942"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/const_eval%20is%20slow%20with%20locals%20without%20liveness%20markers/near/154248942" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/const_eval.20is.20slow.20with.20locals.20without.20liveness.20markers.html#154248942">(Jan 03 2019 at 16:14)</a>:</h4>
<p>Cc <span class="user-mention" data-user-id="124288">@Oli</span></p>



<a name="154251131"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/const_eval%20is%20slow%20with%20locals%20without%20liveness%20markers/near/154251131" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Björn Steinbrink <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/const_eval.20is.20slow.20with.20locals.20without.20liveness.20markers.html#154251131">(Jan 03 2019 at 16:53)</a>:</h4>
<p>looks like this is via validate_and_turn_into_const which, AFAICT, creates an eval context from the function's mir for every promoted mir, which probably(?) explains why the locals are unused</p>



<a name="154251371"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/const_eval%20is%20slow%20with%20locals%20without%20liveness%20markers/near/154251371" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/const_eval.20is.20slow.20with.20locals.20without.20liveness.20markers.html#154251371">(Jan 03 2019 at 16:57)</a>:</h4>
<p>oh yeah, we do funny things for promoteds</p>



<a name="154251377"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/const_eval%20is%20slow%20with%20locals%20without%20liveness%20markers/near/154251377" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/const_eval.20is.20slow.20with.20locals.20without.20liveness.20markers.html#154251377">(Jan 03 2019 at 16:57)</a>:</h4>
<p>I dont know which funny things though^^ but <span class="user-mention" data-user-id="124288">@Oli</span> does</p>



<a name="154253705"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/const_eval%20is%20slow%20with%20locals%20without%20liveness%20markers/near/154253705" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/const_eval.20is.20slow.20with.20locals.20without.20liveness.20markers.html#154253705">(Jan 03 2019 at 17:42)</a>:</h4>
<p>I tried a while back to create a dummy mir that we can use in <code>mk_eval_cx</code> to work around doing any operations during the <code>push_stack_frame</code></p>



<a name="154253944"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/const_eval%20is%20slow%20with%20locals%20without%20liveness%20markers/near/154253944" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/const_eval.20is.20slow.20with.20locals.20without.20liveness.20markers.html#154253944">(Jan 03 2019 at 17:47)</a>:</h4>
<p>Should be fairly easy to do if you don't attempt to create a constant like I did :P</p>



<a name="154255114"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/const_eval%20is%20slow%20with%20locals%20without%20liveness%20markers/near/154255114" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Björn Steinbrink <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/const_eval.20is.20slow.20with.20locals.20without.20liveness.20markers.html#154255114">(Jan 03 2019 at 18:05)</a>:</h4>
<p>@oli could we add an Undef variant in addition to the Dead variant? Seems that all code path ultimately simply ignore accesses to undef values atm anyway</p>



<a name="154255628"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/const_eval%20is%20slow%20with%20locals%20without%20liveness%20markers/near/154255628" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/const_eval.20is.20slow.20with.20locals.20without.20liveness.20markers.html#154255628">(Jan 03 2019 at 18:14)</a>:</h4>
<p>There's an <code>Undef</code> inside the initialized variant. But I'd rather use a dummy mir. If you want I can cook up a quick PR</p>



<a name="154255697"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/const_eval%20is%20slow%20with%20locals%20without%20liveness%20markers/near/154255697" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Björn Steinbrink <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/const_eval.20is.20slow.20with.20locals.20without.20liveness.20markers.html#154255697">(Jan 03 2019 at 18:15)</a>:</h4>
<p>@Oli yeah, but that requires the layout computations which make things expensive, thus I was thinking of moving it to a higher level. PR sounds good to me</p>



<a name="154256041"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/const_eval%20is%20slow%20with%20locals%20without%20liveness%20markers/near/154256041" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/const_eval.20is.20slow.20with.20locals.20without.20liveness.20markers.html#154256041">(Jan 03 2019 at 18:20)</a>:</h4>
<p><span class="user-mention" data-user-id="158223">@Björn Steinbrink</span> your pings aren't highlighting me, I think you need to tab complete</p>



<a name="154256110"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/const_eval%20is%20slow%20with%20locals%20without%20liveness%20markers/near/154256110" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Björn Steinbrink <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/const_eval.20is.20slow.20with.20locals.20without.20liveness.20markers.html#154256110">(Jan 03 2019 at 18:21)</a>:</h4>
<p><span class="user-mention" data-user-id="124288">@Oli</span> better?</p>



<a name="154401984"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/const_eval%20is%20slow%20with%20locals%20without%20liveness%20markers/near/154401984" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/const_eval.20is.20slow.20with.20locals.20without.20liveness.20markers.html#154401984">(Jan 04 2019 at 10:55)</a>:</h4>
<p>initialized with <code>Undef</code> and uninitialized are not the same state</p>



<a name="154401989"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/const_eval%20is%20slow%20with%20locals%20without%20liveness%20markers/near/154401989" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/const_eval.20is.20slow.20with.20locals.20without.20liveness.20markers.html#154401989">(Jan 04 2019 at 10:55)</a>:</h4>
<p>in the former case we do have backing memroy allocated but not initialized yet, in the latter case there is no memory yet</p>



<a name="154401991"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/const_eval%20is%20slow%20with%20locals%20without%20liveness%20markers/near/154401991" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/const_eval.20is.20slow.20with.20locals.20without.20liveness.20markers.html#154401991">(Jan 04 2019 at 10:55)</a>:</h4>
<p>so it makes sense for these to be distinct states</p>



<a name="154401996"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/const_eval%20is%20slow%20with%20locals%20without%20liveness%20markers/near/154401996" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/const_eval.20is.20slow.20with.20locals.20without.20liveness.20markers.html#154401996">(Jan 04 2019 at 10:55)</a>:</h4>
<p>and we may need that for unsized locals where we cannot pre-allocate because we don't know the size</p>



<a name="154402046"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/const_eval%20is%20slow%20with%20locals%20without%20liveness%20markers/near/154402046" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/const_eval.20is.20slow.20with.20locals.20without.20liveness.20markers.html#154402046">(Jan 04 2019 at 10:56)</a>:</h4>
<p>one thing I am wondering about: for unsized locals, when exactly do we emit the <code>alloca</code> for LLVM? When is the size determined? That should be the place where miri allocates the backing memory. (CC <span class="user-mention" data-user-id="119009">@eddyb</span> <span class="user-mention" data-user-id="124288">@Oli</span> )</p>



<a name="154416386"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/const_eval%20is%20slow%20with%20locals%20without%20liveness%20markers/near/154416386" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Björn Steinbrink <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/const_eval.20is.20slow.20with.20locals.20without.20liveness.20markers.html#154416386">(Jan 04 2019 at 15:39)</a>:</h4>
<p><span class="user-mention" data-user-id="120791">@RalfJ</span>  what kind of unsized local are you referring to? Do we support C99 style  variable length arrays now or something like that?</p>



<a name="154420005"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/const_eval%20is%20slow%20with%20locals%20without%20liveness%20markers/near/154420005" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/const_eval.20is.20slow.20with.20locals.20without.20liveness.20markers.html#154420005">(Jan 04 2019 at 16:39)</a>:</h4>
<p>much better than that: <a href="https://doc.rust-lang.org/unstable-book/language-features/unsized-locals.html" target="_blank" title="https://doc.rust-lang.org/unstable-book/language-features/unsized-locals.html">https://doc.rust-lang.org/unstable-book/language-features/unsized-locals.html</a></p>



<a name="154454958"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/const_eval%20is%20slow%20with%20locals%20without%20liveness%20markers/near/154454958" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jake Goulding <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/const_eval.20is.20slow.20with.20locals.20without.20liveness.20markers.html#154454958">(Jan 05 2019 at 03:09)</a>:</h4>
<p>Huh. I missed that had been implemented at all</p>



<a name="154471135"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/const_eval%20is%20slow%20with%20locals%20without%20liveness%20markers/near/154471135" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/const_eval.20is.20slow.20with.20locals.20without.20liveness.20markers.html#154471135">(Jan 05 2019 at 12:07)</a>:</h4>
<p><span class="user-mention" data-user-id="158223">@Björn Steinbrink</span> one thing that I think we should probably do is to <em>not</em> run optimizations like inlining and copy propagation on constants and statics (associated constants might still make sense to get optimized though)</p>



<a name="154471140"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/146212-t-compiler/const-eval/topic/const_eval%20is%20slow%20with%20locals%20without%20liveness%20markers/near/154471140" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/146212-t-compiler/const-eval/topic/const_eval.20is.20slow.20with.20locals.20without.20liveness.20markers.html#154471140">(Jan 05 2019 at 12:07)</a>:</h4>
<p>also not on promoteds</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>